#ifndef COMPASS_APP_H
#define COMPASS_APP_H

#include <rtthread.h>
#include "lvgl.h"

/**
 * @brief  指南针对象结构体（封装表盘、指针等UI元素）
 */
typedef struct
{
    lv_obj_t *compass_dial;    // 指南针表盘对象（父对象）
    lv_obj_t *compass_pointer; // 指南针指针对象（子对象，依附于表盘）
    lv_img_dsc_t *cp_point;    // 指针图片描述符（存储图片数据、宽高等信息）
} Compass;

// 全局变量声明
extern Compass *r_dial;
extern lv_obj_t *angle_label;
extern lv_obj_t *char_label;
extern float current_angle_360;

// 函数声明
void update_angle_text(int32_t angle);
void set_direction_text(int index);
void pointer_rotate_cb(float angle);  // 使用指针旋转功能
// void update_compass_ui(float angle);     // 不再使用纯文字显示方式
void my_timer(lv_timer_t *timer);
void init_sensor(void);

#endif // COMPASS_APP_H